home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mac Magazin/MacEasy 12
/
Mac Magazin and MacEasy Magazine CD - Issue 12.iso
/
Sharewarebibliothek
/
Anwendungen
/
Grafik
/
Matt's_Fract(Fat)101
/
Sources
/
includes
/
VideoTools.c
< prev
next >
Wrap
C/C++ Source or Header
|
1995-06-27
|
4KB
|
227 lines
#include "AllTools.h"
short oldMBarHeight;
RgnHandle mBarRgn;
RgnHandle tempRgn;
RgnHandle theGrayRgn;
Boolean alreadyHidden;
void DoFillRect(WindowPtr window, Rect theRect, color theColor, short copyMode, videoInfoPtr theScreen)
{
RGBColor oldColor;
GrafPtr savePort;
GetPort(&savePort);
SetPort(window);
PenMode(copyMode);
GetForeColor(&oldColor);
if ((*theScreen).bitsPerPixel != 1)
{
RGBForeColor(&theColor.fillColor);
PaintRect(&theRect);
}
else
{
FillRect(&theRect, &theColor.pattColor);
}
RGBForeColor(&oldColor);
SetPort(savePort);
}
void DoInvertRect(WindowPtr window, Rect theRect, color theColor)
{
GrafPtr savePort;
GetPort(&savePort);
SetPort(window);
InvertRect(&theRect);
SetPort(savePort);
}
void DoFillRgn(WindowPtr window, RgnHandle theRgn, color theColor, short copyMode, videoInfoPtr theScreen)
{
RGBColor oldColor;
GrafPtr savePort;
GetPort(&savePort);
SetPort(window);
PenMode(copyMode);
GetForeColor(&oldColor);
if ((*theScreen).bitsPerPixel != 1)
{
RGBForeColor(&theColor.fillColor);
PaintRgn(theRgn);
}
else
{
FillRgn(theRgn, &theColor.pattColor);
}
RGBForeColor(&oldColor);
SetPort(savePort);
}
void DoDrawRect(WindowPtr window, Rect theRect, color theColor, short copyMode, videoInfoPtr theScreen)
{
Pattern patt;
DrawInfo drawInfo;
drawInfo = SetDrawInfo(window, theColor, copyMode);
GetIndPattern(&patt, 0, 1);
PenPat(&patt);
DoMoveTo(window, theRect.left, theRect.top);
DoLineTo(window, theRect.right, theRect.top, theColor, copyMode, theScreen);
DoLineTo(window, theRect.right, theRect.bottom, theColor, copyMode, theScreen);
DoLineTo(window, theRect.left, theRect.bottom, theColor, copyMode, theScreen);
DoLineTo(window, theRect.left, theRect.top, theColor, copyMode, theScreen);
ReSetDrawInfo(drawInfo);
}
DrawInfo SetDrawInfo(WindowPtr window, color theColor, short copyMode)
{
Pattern patt;
DrawInfo drawInfo;
SetPort(window);
GetPort(&drawInfo.savePort);
PenMode(copyMode);
GetForeColor(&drawInfo.oldColor);
GetIndPattern(&patt, 0, 1);
PenPat(&patt);
return drawInfo;
}
void ReSetDrawInfo(DrawInfo drawInfo)
{
Pattern patt;
RGBForeColor(&drawInfo.oldColor);
SetPort(drawInfo.savePort);
GetIndPattern(&patt, 0, 1);
PenPat(&patt);
}
void DoMoveTo(WindowPtr window,short x, short y)
{
GrafPtr savePort;
GetPort(&savePort);
SetPort(window);
MoveTo(x,y);
SetPort(savePort);
}
void DoLineTo(WindowPtr window,short x, short y, color theColor, short copyMode, videoInfoPtr theScreen)
{
GrafPtr savePort;
RGBColor oldColor;
Pattern patt;
SetPort(window);
GetPort(&savePort);
PenMode(copyMode);
GetForeColor(&oldColor);
if ((*theScreen).bitsPerPixel != 1)
{
GetIndPattern(&patt, 0, 1);
PenPat(&patt);
RGBForeColor(&theColor.fillColor);
LineTo(x,y);
}
else
{
PenPat(&theColor.pattColor);
LineTo(x,y);
}
RGBForeColor(&oldColor);
SetPort(savePort);
}
void DoLineTo2(short x, short y, color theColor, videoInfoPtr theScreen)
{
if ((*theScreen).bitsPerPixel != 1)
{
RGBForeColor(&theColor.fillColor);
LineTo(x,y);
}
else
{
PenPat(&theColor.pattColor);
LineTo(x,y);
}
}
void MbarInit(void)
{
alreadyHidden = FALSE;
}
void HideMenuBar(void)
{
Rect mBarRect;
if (alreadyHidden == FALSE)
{
oldMBarHeight = LMGetMBarHeight();
LMSetMBarHeight(0); /* make the Menu Bar's height zero */
SetRect(&mBarRect, qd.screenBits.bounds.left, qd.screenBits.bounds.top,
qd.screenBits.bounds.right, qd.screenBits.bounds.top + oldMBarHeight);
mBarRgn = NewRgn();
tempRgn = NewRgn();
RectRgn(mBarRgn, &mBarRect);
theGrayRgn = GetGrayRgn();
UnionRgn(theGrayRgn, mBarRgn, tempRgn);/* tell the desktop it covers the menu*/
LMSetGrayRgn(tempRgn); /* bar */
PaintOne(nil, mBarRgn); /* redraw desktop */
alreadyHidden = TRUE;
}
}
void ShowMenuBar(void)
{
if (alreadyHidden == TRUE)
{
LMSetMBarHeight(oldMBarHeight); /* make the menu bar's height normal */
LMSetGrayRgn(theGrayRgn);
DrawMenuBar();
DisposeRgn(tempRgn);
DisposeRgn(mBarRgn);
alreadyHidden = FALSE;
}
}
void SquareCorners(void)
{
}
void RoundCorners(void)
{
}
void GammaFadeOut(void)
{
}
void GammaFadeIn(void)
{
}
void ChangeBitDepth(short bitDepth, Boolean color)
{
GDHandle theScreenHandle;
theScreenHandle = GetTheGDevice();
if (color != TRUE) SetDepth(theScreenHandle,bitDepth,1,0);
else
SetDepth(theScreenHandle,bitDepth,1,1);
}